Autonomic computing systems are typically designed to mimic the human body's central nervous system. For instance, inputs are received by the system and the system reacts to these inputs without the need for specific inputs or control from a human user. In one example, low-level tasks of the system may be performed without the requirement of intervening highly trained human specialists. Autonomic systems may be self-configurable and self-managed, further reducing or eliminating the need for user input and/or control.
Autonomic systems typically include heterogeneous computing elements that are programmed using specific data and commands. For instance, each device in the autonomic system may be programmed using one or more distinct programming approaches (e.g., using the Simple Network Management Protocol (SNMP) or a Command Line Interface (CLI)), according to different programming models (e.g., modal and non-modal approaches) or according to different programming languages.
Because the various elements frequently utilize different programming approaches or models, management and interaction of the disparate elements becomes difficult or impossible to achieve using previous approaches. For instance, the various elements can often not share and/or communicate decisions on similar data and commands. These problems make it difficult or impossible to manage different computing elements and use different technologies to implement the various elements. Moreover, additional software and/or hardware functionality is often required for each combination of elements in the system that need to communicate with each other. Robustness and scalability problems are also often caused by the use of disparate approaches.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention. It will further be appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.